package cn.collection.list;

import java.util.ArrayList;
import java.util.List;

public class Demo02 {
    /*
    2.List集合
        2.1List集合的概述和特点
            List集合的概述
                有序集合,这里的有序指的是存取顺序
                用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素
                与Set集合不同,列表通常允许重复的元素
                List集合的特点
                存取有序
                可以重复
                有索引
        2.2List集合的特有方法
            方法介绍
                        方法名	                        描述
                void add(int index,E element)	在此集合中的指定位置插入指定的元素
                E remove(int index)	            删除指定索引处的元素，返回被删除的元素
                E set(int index,E element)	    修改指定索引处的元素，返回被修改的元素
                E get(int index)	            返回指定索引处的元素
    * */
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        // method1(list);
        // method2(list);
        // method3(list);
        method4(list);
    }

    private static void method4(List<String> list) {
        //        E get(int index)		返回指定索引处的元素
        String s = list.get(0);
        System.out.println(s);
    }

    private static void method3(List<String> list) {
        //        E set(int index,E element)	修改指定索引处的元素，返回被修改的元素
        //被替换的那个元素,在集合中就不存在了.
        String result = list.set(0, "qqq");
        System.out.println(result);
        System.out.println(list);
    }

    private static void method2(List<String> list) {
        //        E remove(int index)		删除指定索引处的元素，返回被删除的元素
        //在List集合中有两个删除的方法
        //第一个 删除指定的元素,返回值表示当前元素是否删除成功
        //第二个 删除指定索引的元素,返回值表示实际删除的元素
        String s = list.remove(0);
        System.out.println(s);
        System.out.println(list);
    }

    private static void method1(List<String> list) {
        //        void add(int index,E element)	在此集合中的指定位置插入指定的元素
        //原来位置上的元素往后挪一个索引.
        list.add(0,"qqq");
        System.out.println(list);
    }
}
